วันอังคารที่ 11 ธันวาคม พ.ศ. 2561

SSL

HTTPs vs HTTP

HTTP คืออะไร

Hypertext Transfer Protocol (HTTP) เป็น โปรโตรคอล ที่ใช้งานสำหรับเผยแพร่ข้อมูล ครั้งแรกเพื่อสำหรับการเผยแพร่และแลกเปลี่ยน HTML
HTTP เป็น โปรโตคอลที่ใช้ ร้องขอ/ตอบกลับ ระหว่างเครื่องลูกข่ายที่ใช้เว็บเบราว์เซอร์ กับเครื่องแม่ข่ายที่เรียกว่าเว็บเซิร์ฟเวอร์ โดยใช้โปรโตคอล TCP

HTTPS คืออะไร

คือ ระบบความปลอดภัยของ HTTP protocol สำหรับการแลกเปลี่ยนข้อมูลระหว่างเครื่อง server และ client ทำงานอยู่บนพอร์ต 443 ด้วยการเพิ่มข้อมูลในส่วนการระบุตัวผู้ส่ง และการเข้ารหัสข้อมูล

SSL (Secure Socket Layer )

SSL มีชื่อเต็มคือ Secure Socket Layer เป็นเทคโนโลยีการเข้ารหัสข้อมูลเพื่อเพิ่มความปลอดภัยในการส่งข้อมูลบนอินเทอร์เน็ต ทั้งในเว็บไซต์หรือแอปพลิเคชั่นต่างๆ ที่จะทำให้เว็บไซต์ของเรามีความปลอดภัย

ประเภทของ SSL Certificate
ถ้ามองดูอย่างผิวเผินแล้วแล้วเราคงแยกไม่ออกว่า SSL Certificate แต่และประเภทมันต่างกันอย่างไร เพราะสิ่งที่ทุกคนสังเกตในช่อง URL คือ https อย่างเดียว แต่จริงๆ แล้วมันสามารถจำแนกออกได้ 3 แบบหลักๆ คือ

1. Domain Validation SSL Certificate (DV)
นี่คือการออกใบรับรอง SSLที่ง่ายและไวที่สุด โดยฝั่งผู้ให้บริการ SSL จะมีการตรวจสอบเพียงว่าใครเป็นเจ้าของโดเมน (ชื่อเว็บไซต์) นี้เท่านั้น ไม่มีการตรวจสอบเชิงลึกแต่อย่างใด สามารถทำได้ในเวลาไม่กี่นาที

2. Organization Validation SSL Certificate (OV)
ตามชื่อเลยครับ นี่คือ SSL ในระดับองค์กร โดยจะมีการตรวจสอบในเชิงลึกมากขึ้น ทั้งตัวเจ้าของโดเมน และฝั่งองค์กรว่ามีอยู่จริงหรือไม่ผ่านกรมพัฒนาธุรกิจการค้า และอาจต้องยื่นเอกสารบางประการที่ฝั่งผู้ให้บริการ SSL ขอเพื่อยืนยันตัวตนหรือธุรกิจนั้นๆ

3. Extended Validation SSL Certificate (EV)
ตัวสุดท้ายคงเป็นการตรวจสอบที่เข้มงวดที่สุด สำหรับ Extended Validation ซึ่งนอกจากจะถูกตรวจสอบเจ้าของโดเมน ตรวจสอบองค์กรผ่านกรมธุรกิจการค้าแบบเดียวกับ Organization Validation แล้ว ยังมีการตรวจสอบข้อมูลเชิงลึกของบริษัทด้วย


ทำให้เป็น SSL



SSL ของ Cloudflare จะมีอยู่ 3 แบบ

ซึ่งถ้าเราซื้อใบรับรองอยู่แล้ว มันก็เป็น Full SSL หรือ Full SSL (Strict) แต่ถ้าไม่ซื้อ มันจะเข้ามาดูเว็บเราว่ามีใบรับรองหรือเปล่า? ถ้าไม่มี ก็เรียกที่ http ดื้อๆ เลยครับ แต่ว่าคนอื่นจะเห็นเป็น https เพราะว่าเค้าดูผ่าน cloudflare เท่านั้น ไม่มีทางดูผ่านเว็บเราโดยตรงได้ เรียกว่า Flexible SSL ตามรูปครับ



Flexible SSL

  Cloudflare จะทำการติดต่อกับ Server เราผ่านทาง HTTP Connection แล้วจะ Encrypt ข้อมูลเพื่อติดต่อกับเครื่อง Client ผ่านทาง HTTPS Connection

Result

ใช้ CloudFlare ในการทำ SSL





Load Balance

Load balance

ผลการค้นหารูปภาพสำหรับ load balance

จะมี Server 3 ตัว
           -  1 ตัว เป็นตัวแบ่งการทำงาน
           -  2 ตัว เป็น Server Webservice



ใช้ AWS ในการทำ Load Balance


จะเห็นว่ามี server 2 ตัว



จะเห็นว่ามี server ที่เป็น load balancing เป็นตัวแจกจ่ายงานให้ server ทั้งสอง





จะเห็นว่ามีการแบ่ง การทำงานของ server เครื่องละ 10 request




ผลการค้นหารูปภาพสำหรับ apache jmeter

ใช้ Apache JMeter ในการทดสอบ Request

ทดสอบ 1500 req / sec Error

   
จะเกิด Eror ขึ้น วิธีแก้ อาจจะต้องเพิ่ม Server ขึ้น 

วันพุธที่ 31 ตุลาคม พ.ศ. 2561

Web Service นาย ณัฐกิจ ขัดผาบ

นาย ณัฐกิจ   ขัดผาบ  5801012610032

Server side
ข้อ ที่ 1

Service ที่ 1



1. เก็บรายชื่อไว้ใน database


2. เขียน function fetch ข้อมูลจาก database
3. เขียน service  ในการส่งข้อมูล
4. ทำ file .xsd เช็ก schema


5. เช็กว่า xml validate กับ schema หรือไม่
6. ส่ง xml ไปยัง client


Client side

user Python and Node JS

Python

result

Node JS


result


________________________________________________________________________________

ข้อที่ 2
Service ที่ 1


1. สร้าง table เก็บการส่งข้อมูล database

2. รับค่าจาก client
3. เขียน function insert ข้อมูล

Service ที่ 2


1. update ข้อมูลใน table ให้หมดจาก (sended = no) => (sended = yes)

Service ที่ 3


1. เรียกข้อมูลทั้งหมดออกมาดูจาก table
2. ทำ file .xsd เช็ก schema

3. เช็กว่า xml validate กับ schema หรือไม่
4. ส่ง xml ไปยัง client


Client side

user Python and Node JS

Python

service 1

service 2

service 3

result

Node JS

service 1

service 2

service 3

result

_________________________________________________________________________________

GitHub and Heroku
Server Github : https://github.com/tapetop18135/selectMidtermTest
Client Github : https://github.com/tapetop18135/selectMidtermClient

Server Heroku: https://minitestsoap.herokuapp.com/soapAPI1/?wsdl



Web Service นาย พันธกานต์ ขัดผาบ

ข้อ 1 แสดงชื่อ และประวัตของ นักศึกษา

     Service ที่ 1
         -  ให้ client request ไปให้ server และให้ server ส่ง response ออกมาให้ client
                                Server

Code ส่วน Service จะมีการตรวจสอบ xmlschema ด้วย library XMLSchema 
เมื่อ valid จะสามารถส่งข้อมูลไปให้ client

                                Client
                                
                                Result
  


ข้อ 2 ทำ Web Service ส่งของคล้าย EMS
    -  มีการเก็บข้อมูลสินค้า(order ของลูกค้า)
    -  อัพเดท order เมื่อมีการส่งของ

   Service ที่ 1
         -  เมื่อลูกค้าต้องการจะส่งของ จะมีการ บันทึก order

    Server

                                Client (insert และ update status)

   Service ที่ 2
         - เมื่อของส่งแล้วมีการ อัพเดท สถานะของ order(ส่งแล้ว)

    Server


   Service ที่ 3
         -  แสดงข้อมูลต่างๆ และมีการใส่ parameter
             -  getDataStored()
             -  getlistname(name)
             -  getlistadd(address)
             -  getlistweight(start,end)

    Server

                                          Client

Table detail


ตัวอย่าง ข้อมูล


git log Client


git log Server


master : Local
origin/master : Git hub
heroku/master : Heroku

ref:
    heroku : https://gopapa.herokuapp.com/soapAPI1?wsdl
    git-hub : https://github.com/eunhye1999/gopapa

วันอังคารที่ 16 ตุลาคม พ.ศ. 2561

week 10 How to Create Web Service

Step By Step

Tools and Library
1. Python Language
2. Visual Code
3. Pip
4. Git
5. Heroku
6. Flask
7. Zeep
8. Spyne
9. lxml
10. gunicorn

How to install Tools
1. Download Python and install Python
2. install pip
3. Download Git and pip Install git
4. Download Heroku desktop and use comand of heroku for deploy
5. Download Visual Code
6. pip install flask
7. pip install zeep
8. pip install spyne
9. pip install lxml
10. pip install gunicorn

How to Create Basic Web Service (Server)
1. Create Folder Folder name SoapServer
2. Create file name manage.py
3. in file manage.py (จัดการ Port, IP, Path ต่างๆ)


4. Create Folder App
5. Create 2 file flasked.py and spyned.py
6. in file flask.py (สร้าง Server)


7. in file spyned.py (สร้าง Service ต่างๆ)
import library


all 


create Service name HelloWorldService


create Input Out Put of Service


How to Create Basic Web Service (Client)
1. create file soapClinent.py
2. in fil soapClinent.py


Run and Test Program
1. Run Server open cmd(Window) and run python manage.py


2. Open Browser and connect to http://127.0.0.1:8000/soapAPI1/?wsdl

total

 in type


3. Run Client open cmd(Window) and run python soapClient.py


How Deploy to Heroku
1. create file Procfile
2. in Procfile
   

3. open cmd(Window) run pip freeze > requirements.txt if you finish you will see


4. open cmd(Window) run command followed
5. git add .
6. git commit -m "first Commit"
7. open browser for create repository in Heroku



8. in cmd run heroku login 
9. enter your email and password
10. run heroku git:remote -a soapservicetest
11. git push heroku master
12. Finish Basic WebService