คำถามติดแท็ก http

HTTP ย่อมาจาก Hyper Text Transfer Protocol และเป็นโปรโตคอลที่ใช้ในการถ่ายโอนข้อมูลทั่วเวิลด์ไวด์เว็บ

1
HAProxy - ส่งต่อไปยังเว็บเซิร์ฟเวอร์อื่นตาม URI
ฉันมีฟาร์ม HTTP ที่มีการกำหนดค่าต่อไปนี้: listen webfarm 10.254.23.225:80 mode http balance roundrobin cookie SERVERID insert option httpclose option forwardfor option httpchk HEAD /check.txt HTTP/1.0 server webA 10.254.23.4:80 cookie A check server webB 10.248.23.128:80 cookie B check ฉันต้องการเพิ่มตัวเลือกที่จะส่งต่อคำขอทั้งหมดสำหรับ URI เฉพาะ (เช่น / พิเศษ) ไปยังเว็บเซิร์ฟเวอร์ที่สาม ฉันควรทำอย่างไร

3
จะส่งตัวแปร $ _GET ไปยังสคริปต์ PHP ผ่านทางบรรทัดคำสั่งได้อย่างไร
ฉันพยายามสร้างเว็บเซิร์ฟเวอร์ที่ให้บริการสคริปต์ PHP ปัจจุบันทำงานได้ดังนี้: ลูกค้าร้องขอ /index.php?test=value เซิร์ฟเวอร์เรียกใช้ php index.php เซิร์ฟเวอร์ดึงข้อมูลส่วนหัวคำขอ HTTP เป็น STDIN ไปยังกระบวนการ PHP เซิร์ฟเวอร์อ่านเอาต์พุตของphpจาก STDOUT และส่งคืนไปยังไคลเอ็นต์ ทั้งหมดนี้ใช้งานได้ยกเว้นว่าพารามิเตอร์จะไม่ถูกส่งไปยังสคริปต์ PHP เพราะ: var_dump($_GET); ผลตอบแทน: อาร์เรย์ (0) {} วิธีทำ$_GETพารามิเตอร์ได้รับการส่งผ่านไปยังไบนารี PHP เมื่อมันถูกเรียก?
14 php  http  cgi 

1
ส่วนหัว HTTP สำหรับระบุเซิร์ฟเวอร์ต้นทางหลัง load balancer
สำหรับจุดประสงค์ในการดีบั๊กเราต้องการกำหนดค่ากลุ่มของเว็บเซิร์ฟเวอร์โหลดบาลานซ์เพื่อส่งออกส่วนหัว HTTP ที่ระบุเซิร์ฟเวอร์ "จริง" ซึ่งทำหน้าที่ร้องขอ อย่างไรก็ตามเราไม่ทราบว่าชื่อส่วนหัวนี้ควรเป็นอะไร! มีส่วนหัวที่มีอยู่สำหรับสิ่งนี้หรือไม่ คุณมีของโปรดไหม
13 http 

2
Apache2 - 301 Redirect เมื่อไม่มี“ /” ที่ท้ายไดเรกทอรีใน url
ฉันไม่ได้สังเกตเห็น Redirect นี้ (301) จริงๆเมื่อขอ URL เช่นนี้โดยไม่ทับ ("/") ในตอนท้าย: http://server/directory เซิร์ฟเวอร์จะ respone กับส่วนหัว 301 http://server/directory/เปลี่ยนเส้นทางถาวรกับตำแหน่งส่วนหัวของสถานที่ที่จะ ดูตัวอย่างสดนี้: คำขอของผู้ใช้: GET /social HTTP/1.1 ( http://192.168.1.111/social ) Apache Server การตอบกลับ: HTTP/1.1 301 Moved Permanently Location: http://192.168.1.111/social/ คำขอของผู้ใช้: GET /social/ HTTP/1.1 ( http://192.168.1.111/social/ ) Apache Server การตอบกลับ: HTTP/1.1 200 OK Apache access.log: 192.168.1.130 - - …

1
http code 206 (เนื้อหาบางส่วน) หมายถึงอะไรจริงๆ?
ฉันกำลังสร้างหน้าเว็บ (โดยใช้ video.js หากเป็นเรื่องสำคัญ) ที่มีผู้เล่นสำหรับวิดีโอจำนวนมากพอสมควร - คลิกที่ปุ่มบนภาพขนาดย่อของภาพและผู้เล่นที่เป็นกิริยาช่วยเปิดขึ้นเล่นวิดีโอ ทำงานได้ดี; ไม่ใช่เรื่องใหญ่. เซิร์ฟเวอร์ของฉันคือ Apache 2.2.15, fwiw คำถาม: เมื่อฉันดูบันทึกเซิร์ฟเวอร์ฉันเห็นรายการวิดีโอแต่ละรายการที่มีรหัส HTTP 206 (เนื้อหาบางส่วน) เช่น: GET /videos/a_video.mp4 HTTP/1.1" 206 1130496 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11" ฉันไม่แน่ใจว่าสิ่งเหล่านี้หมายถึงอะไรกันแน่ เมื่อโหลดหน้านี้มีสิ่งที่ส่งถึง 1.1 MB จริง ๆ ผ่านเครือข่ายไปยังไคลเอนต์หรือเป็นเพียงข้อมูลที่ลูกค้าหมายถึงการใช้เมื่อ / ถ้าไฟล์ถูกร้องขอโดยผู้ใช้จริง ๆ ? การทิ้งทุกสิ่งนี้ไปยังผู้ใช้ / …

2
การแคชพร็อกซี Nginx - วิธีการตรวจสอบว่ามันทำงานได้หรือไม่
ฉันได้ตั้งค่าไฟล์ nginx.conf ของฉันเพื่อใช้การแคชพร็อกซีจากบทเรียนที่ฉันพบทางออนไลน์ ตอนนี้ฉันกำลังพยายามหาวิธีตรวจสอบว่ามันใช้งานได้จริงหรือไม่ ฉันได้อ่านบางแห่งที่เพิ่มadd_header X-Cache-Status $upstream_cache_status;ไปยังไฟล์กำหนดค่าในส่วนเซิร์ฟเวอร์ควรเพิ่มส่วนหัวแคชในการตอบสนองที่จะแสดงว่ามันมาจากแคช (มีค่าเป็น HIT, MISS หรือ EXPIRED) ฉันต้องการทราบว่าฉันสามารถดูส่วนหัวนี้ได้ที่ไหน (และความคุ้มค่า) เช่นเดียวกับถ้านี่เป็นวิธีที่ถูกต้อง / หากมีวิธีอื่น ฉันใหม่มากกับเทคโนโลยีเว็บโดยทั่วไปขอโทษถ้านี่เป็นคำถาม noob ขอบคุณ!

2
จะเกิดอะไรขึ้นเมื่อคำขอ HTTP ถูกยกเลิกก่อนกำหนด
สมมติว่าฉันป้อน URL ในเบราว์เซอร์ของฉันและเบราว์เซอร์ส่งคำขอ HTTP เซิร์ฟเวอร์ HTTP ระยะไกลยอมรับคำขอและเริ่มงานที่มีความยาวเพื่อให้บริการตามคำขอ หากฉันยกเลิกคำขอก่อนที่จะเสร็จสมบูรณ์ (ตัวอย่างเช่นกด Esc หรือใน Firefox) คำขอจะปิดอย่างไร เบราว์เซอร์จะสื่อสารคำขอยกเลิกนี้ไปยังเซิร์ฟเวอร์ (ฉันคิดว่าไม่ได้)? สมมติว่าไม่มีเมื่อเสร็จงานที่ยาวนานเซิร์ฟเวอร์จะทำอะไรกับผลลัพธ์ มันส่งมันกลับมาหรือไม่? ถ้าเป็นเช่นนั้นจะเกิดอะไรขึ้น มันไปถึงพีซีของฉันหรือไม่ หรือหลงทาง? นี่เป็นเพียงความอยากรู้ของฉัน ขอบคุณที่สละเวลา :)
13 http 

1
เปลี่ยนเส้นทางคำขอทั้งหมดไปยัง HTTPS ยกเว้นไดเรกทอรีย่อยเดียว
ฉันกำลังพยายามย้ายจากใบรับรองที่ลงชื่อด้วยตนเองไปเป็น Let's เข้ารหัสใบรับรองบนเว็บเซิร์ฟเวอร์ nginx ของฉัน ขณะนี้ฉันเปลี่ยนเส้นทางคำขอทั้งหมดไปhttp/80ยังhttps/443ซึ่งใช้ใบรับรองที่ลงชื่อด้วยตนเองที่ฉันสร้างขึ้นเมื่อไม่นานมานี้ ตอนนี้ - จากสิ่งที่ฉันเข้าใจ Let's Encrypt ส่งคำขอไปที่พอร์ต 80 (เนื่องจากฉันใช้webrootตัวเลือกcertbot) คำขอเหล่านี้จะถูกเปลี่ยนเส้นทางซึ่งทำให้การสร้างใบรับรองไม่สำเร็จ ฉันพยายามทำสิ่งนี้ด้วยบล็อกเซิร์ฟเวอร์ต่อไปนี้ฟังที่พอร์ต 80: server { listen 80; server_name sub.domain.tld; server_tokens off; location /.well-known { root /var/www/letsencrypt; } location / { return 301 https://$host$request_uri; } } แต่คำขอจะ/.well-knownถูกเปลี่ยนเส้นทางไปยังhttps/443ใด ๆ ฉันจะเปลี่ยนเส้นทางคำขอทั้งหมดจากhttp/80ไปยังhttps/443ยกเว้นคำขอไปยังได้/.well-known/อย่างไร


2
Nginx หลายราก
ฉันต้องการเบี่ยงเบนความสนใจไปยังไดเรกทอรีย่อยหนึ่ง ๆ ไปยังตำแหน่งรากอื่น อย่างไร? บล็อกที่มีอยู่ของฉันคือ: server { listen 80; server_name www.domain.com; location / { root /home/me/Documents/site1; index index.html; } location /petproject { root /home/me/pet-Project/website; index index.html; rewrite ^/petproject(.*)$ /$1; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html …

1
เหตุใดจึงไม่ใช่ช่างฝีมือ PHP ของ laravel ที่ให้บริการเซิร์ฟเวอร์ที่สามารถเข้าถึงได้จาก WWW บน IIS
ฉันมีแอปพลิเคชัน laravel ที่ทำงานผ่านเซิร์ฟเวอร์ laravel artisan : php artisan serve และทำงานได้ดีถ้าฉันไปlocalhost:8000.. นอกจากนี้ฉันเพิ่มกฎขาเข้าในเซิร์ฟเวอร์ IIS เช่นนั้น: แผงควบคุม -> เครื่องมือการดูแลระบบ -> ไฟร์วอลล์ Windows ที่มีความปลอดภัยขั้นสูงกฎขาเข้า สร้างกฎใหม่ "อนุญาตพอร์ต, TCP, 8000, โปรไฟล์ทั้งหมด อย่างไรก็ตามด้วยเหตุผลบางอย่างฉันยังคงไม่สามารถเข้าถึงเว็บไซต์จาก WWW (ฉันทำตามขั้นตอนเดียวกันสำหรับเซิร์ฟเวอร์ webrick (ในเครื่องเดียวกัน) และสิ่งต่าง ๆ ทำงานได้อย่างสมบูรณ์แบบ) .. มีความคิดอะไรบ้าง?

3
ส่งคืน“ 200 OK” ใน Apache บนคำขอ HTTP OPTIONS
ฉันพยายามใช้การควบคุมการเข้าถึง HTTPข้ามโดเมนโดยไม่ต้องแตะรหัสใด ๆ ฉันมีเซิร์ฟเวอร์ Apache (2) ของฉันคืนส่วนหัวการควบคุมการเข้าถึงที่ถูกต้องด้วยบล็อกนี้: Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "POST, GET, OPTIONS" ตอนนี้ผมต้องป้องกันไม่ให้ Apache จากการดำเนินการรหัสของฉันเมื่อเบราว์เซอร์ส่งHTTP OPTIONSคำขอ (มันเก็บไว้ในREQUEST_METHODตัวแปรสภาพแวดล้อม) 200 OKกลับ ฉันจะกำหนดค่า Apache ให้ตอบสนอง "200 OK" เมื่อวิธีการร้องขอเป็นตัวเลือกได้อย่างไร ฉันได้ลองmod_rewriteบล็อกนี้แล้ว แต่ส่วนหัวการควบคุมการเข้าถึงหายไป RewriteEngine On RewriteCond %{REQUEST_METHOD} OPTIONS RewriteRule ^(.*)$ $1 [R=200,L]

1
สถานะ HTTP ใดที่ฉันควรกลับมาในช่วงที่ไซต์หยุดทำงาน / หยุดทำงานชั่วคราว
ฉันจะลงเว็บไซต์เพื่ออัปเกรดเป็นรหัส ฉันต้องการให้หน้าเว็บหยุดทำงานชั่วคราวแสดงในระหว่างการอัปเกรด เพื่อป้องกันปัญหาเกี่ยวกับบอทที่พยายามไปยังไซต์ของฉันในช่วงเวลาหยุดทำงานฉันควรตอบกลับ HTTP ใดในระหว่างหน้าต่างนี้

1
บรรทัดคำขอ nginx ใหญ่เกินไป
ฉันได้รับข้อผิดพลาด: Bad Request Request Line is too large (6060 > 4094) เมื่อฉันเข้าถึง URL เฉพาะบนเซิร์ฟเวอร์ของฉันเช่นนี้: /api/categorize?packages=package1,package2,...packageN ใน nginx.conf ฉันมี: large_client_header_buffers 8 16k; client_header_buffer_size 8k; ฉันไม่พบเอกสารเกี่ยวกับปัญหาเฉพาะนั้น docs สำหรับ large_client_header_buffers พูดถึง 400 คำขอไม่ถูกต้อง แต่เปลี่ยน "large_client_header_buffers" จาก 4 8k; หรือ 8 8k; หรือ 8 16; ไม่ได้แก้ไขปัญหา
12 nginx  http  web  400 

3
บันทึก IIS แสดง sc-win32-status = 64 แต่ผ่านเครือข่ายบางเครือข่ายเท่านั้น
ฉันมีแอพพลิเคชั่น ASP.NET ทำงานบนไคลเอนต์เซิร์ฟเวอร์ (W2k3, IIS6, .NET 2.0) FWIW นี่เป็นตัวอย่างการทดสอบแต่ยังไม่ได้ย้ายไปยังการผลิต ดังนั้นจึงไม่ทำงานภายใต้ SSL, load balancing, ฯลฯ เมื่อฉันเข้าถึงหน้าใดหน้าหนึ่งบนเซิร์ฟเวอร์ของพวกเขาจากสำนักงานของเราหน้านั้นจะถูกโจมตีหนึ่งครั้ง การตรวจสอบบันทึก IIS (c: WINDOWS \ system32 \ LogFiles \ W3SVC1) แสดง GET สำหรับหน้านั้นจากนั้นฉันกดปุ่มบนหน้าและล็อกไฟล์แสดง POST ดูเหมือนว่าจะทำงานได้ดีจนถึงตอนนี้ ตอนนี้เมื่อฉันเข้าสู่เครือข่ายของลูกค้าจากระยะไกลและเข้าถึงหน้าจากหนึ่งในเครื่องท้องถิ่นของพวกเขาไฟล์บันทึกจะแสดง GET จากนั้นฉันกดปุ่มบนหน้าและบันทึกจะแสดงสอง POST ในวินาทีเดียวกัน อันแรกแสดงสถานะ (สถานะ sc, sc-substatus, sc-win32-status) 200 0 64, อันที่สองแสดง 200 0 0 ในล็อกไฟล์ทั้งสองโพสต์เหมือนกัน โดยทั่วไปบันทึกจะมีลักษณะเช่นนี้ (ยกเว้นฉันปิดบังข้อมูลบางส่วน): …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.